gtk4.git
14 years agoPort GtkLabelAccessible from GailTextUtil to GtkPango api
Matthias Clasen [Sat, 25 Jun 2011 00:36:05 +0000 (20:36 -0400)]
Port GtkLabelAccessible from GailTextUtil to GtkPango api

Unfortunately, we still keep a copy of the text around, for
::insert/::delete signals; those emissions need to be moved to
GtkLabel itself.

14 years agoGtkStyleContext: add some aux. a11y api
Matthias Clasen [Sat, 25 Jun 2011 00:26:42 +0000 (20:26 -0400)]
GtkStyleContext: add some aux. a11y api

This function translates the fg/bg color into atk attributes.

14 years agoAdd some aux. pango api to help AtkText implementations
Matthias Clasen [Sat, 25 Jun 2011 00:22:55 +0000 (20:22 -0400)]
Add some aux. pango api to help AtkText implementations

These functions are implementations of the AtkText api on top
of a PangoLayout, and are intended to replace GailTextUtil.

Since gtkpango.h is a private header, also remove the individual
inclusion prohibition.

14 years agoReplace the boundary test
Matthias Clasen [Sat, 25 Jun 2011 00:16:05 +0000 (20:16 -0400)]
Replace the boundary test

The new test is much smaller, and the results have been carefully
looked at; GtkLabel gets it right, the others don't.

Also, temporarily include some code that dumps out useful information.

14 years agoSort text attributes alphabetically in dumps
Matthias Clasen [Fri, 24 Jun 2011 05:01:50 +0000 (01:01 -0400)]
Sort text attributes alphabetically in dumps

14 years agoGtkLabel: factor out two getters
Matthias Clasen [Fri, 24 Jun 2011 03:30:57 +0000 (23:30 -0400)]
GtkLabel: factor out two getters

Make the get_property switch look a little nicer.
We export these functions privately for use in the label
accessible implementation later on.

14 years agomessagedialog: Initialize style values in init()
Benjamin Otte [Fri, 24 Jun 2011 03:01:03 +0000 (05:01 +0200)]
messagedialog: Initialize style values in init()

Fixes underallocation warnings

14 years agoa11y: Remove setters for column description/header
Benjamin Otte [Thu, 23 Jun 2011 21:45:36 +0000 (23:45 +0200)]
a11y: Remove setters for column description/header

14 years agoa11y: Make treeview header and caption no longer settable
Benjamin Otte [Thu, 23 Jun 2011 18:58:51 +0000 (20:58 +0200)]
a11y: Make treeview header and caption no longer settable

It's not exposed in AT-SPI so we don't need it.

14 years agoa11y: Remove setters for row description/header
Benjamin Otte [Thu, 23 Jun 2011 15:57:26 +0000 (17:57 +0200)]
a11y: Remove setters for row description/header

AT-SPI doesn't expose them, so there's no need to keep them.

14 years agoGtkHSV: set a suitable role for the accessible
Matthias Clasen [Thu, 23 Jun 2011 22:41:47 +0000 (18:41 -0400)]
GtkHSV: set a suitable role for the accessible

The consensus of the accessibility team was that 'color chooser'
fits best for this. Update tests to match.

14 years agoGtkSpinner: set a suitable role for the accessible
Matthias Clasen [Thu, 23 Jun 2011 22:31:22 +0000 (18:31 -0400)]
GtkSpinner: set a suitable role for the accessible

The consensus of the accessibility team was that this is
an animation. Update tests to match.

14 years agoGtkLabelAccessible: remove redundant check
Matthias Clasen [Thu, 23 Jun 2011 22:18:11 +0000 (18:18 -0400)]
GtkLabelAccessible: remove redundant check

We always have the textutil now, so remove some NULL checks.
Also, never say 'State is defunct' again...

14 years agoGtkLabel: freeze property notification where appropriate
Matthias Clasen [Thu, 23 Jun 2011 21:56:03 +0000 (17:56 -0400)]
GtkLabel: freeze property notification where appropriate

When setting properties that require recalculating the label
text, freeze notification until the label is properly updated.
This fixes bug 126797.

14 years agoGtkLabelAccessible: remove broken workarounds
Matthias Clasen [Thu, 23 Jun 2011 21:54:07 +0000 (17:54 -0400)]
GtkLabelAccessible: remove broken workarounds

This removes a horrible workaround for bug 126797. To prevent
picking up accidental markup in label texts, the label accessible
is listening for window creation and mapping and defers initializing
its text until then.

14 years agoAdd a testcase for a very old bug
Matthias Clasen [Thu, 23 Jun 2011 21:52:39 +0000 (17:52 -0400)]
Add a testcase for a very old bug

This tests a problem that was first noticed in 2003, in
bug 126797: The text of a label accessible is not properly
updated when the label switches from !use-markup to use-markup.

14 years agoTest lots of boring string functions
Matthias Clasen [Thu, 23 Jun 2011 21:11:49 +0000 (17:11 -0400)]
Test lots of boring string functions

Needless to say, these tests still fail.

14 years agoAdd some AtkText tests
Matthias Clasen [Thu, 23 Jun 2011 17:07:50 +0000 (13:07 -0400)]
Add some AtkText tests

These unfortunately all fail really miserably, currently.

14 years agoGailLabel -> GtkLabelAccessible
Matthias Clasen [Thu, 23 Jun 2011 05:12:29 +0000 (01:12 -0400)]
GailLabel -> GtkLabelAccessible

A first experimental conversion from the gail namespace to gtkaccessible.
At the same time, use gtk_widget_class_set_accessible_type() to register
the accessible type for GtkLabel.

14 years agoRemove gail_widget_new()
Matthias Clasen [Thu, 23 Jun 2011 04:09:18 +0000 (00:09 -0400)]
Remove gail_widget_new()

The function was unused and unnecessary.

14 years agoForgotten file
Matthias Clasen [Thu, 23 Jun 2011 04:08:50 +0000 (00:08 -0400)]
Forgotten file

14 years agospinbutton testcase
Matthias Clasen [Thu, 23 Jun 2011 03:20:11 +0000 (23:20 -0400)]
spinbutton testcase

14 years agoiconview testcase
Matthias Clasen [Thu, 23 Jun 2011 03:16:28 +0000 (23:16 -0400)]
iconview testcase

14 years agoPaned testcase
Matthias Clasen [Thu, 23 Jun 2011 03:11:20 +0000 (23:11 -0400)]
Paned testcase

14 years agoStatusbar testcases
Matthias Clasen [Thu, 23 Jun 2011 03:08:59 +0000 (23:08 -0400)]
Statusbar testcases

14 years agotree-performance: test with tree stores too
Matthias Clasen [Thu, 23 Jun 2011 03:02:24 +0000 (23:02 -0400)]
tree-performance: test with tree stores too

This duplicates the current test with a GtkTreeStore instead
of a GtkListStore.

14 years agoGailTreeView: optimize a bit
Matthias Clasen [Thu, 23 Jun 2011 02:27:10 +0000 (22:27 -0400)]
GailTreeView: optimize a bit

Avoid many unnecessary list iterations by using a hash table
to store cell infos, and caching row and column counts. Based
on patches by William Jon McCann, bug 554171.

tree-performance results:

before:  (MINPERF:large tree test with a11y: 9.18531sec)
after:   (MINPERF:large tree test with a11y: 0.923463sec)

for comparison, without accessibility:
(MINPERF:large tree test: 0.016179sec)

14 years agoa11y: add a treeview performance test
Matthias Clasen [Wed, 22 Jun 2011 21:39:38 +0000 (17:39 -0400)]
a11y: add a treeview performance test

This test creates a treeview with a few columns and a liststore,
and then populates it with a 1000 rows.

14 years agoAdd a calendar testcase
Matthias Clasen [Wed, 22 Jun 2011 03:49:05 +0000 (23:49 -0400)]
Add a calendar testcase

14 years agoAdd an infobar testcase
Matthias Clasen [Wed, 22 Jun 2011 03:45:46 +0000 (23:45 -0400)]
Add an infobar testcase

14 years agoAdd a GtkProgressBar testcase
Matthias Clasen [Wed, 22 Jun 2011 03:41:29 +0000 (23:41 -0400)]
Add a GtkProgressBar testcase

14 years agoAdd a GtkSpinner testcase
Matthias Clasen [Wed, 22 Jun 2011 03:37:30 +0000 (23:37 -0400)]
Add a GtkSpinner testcase

14 years agoAdd a lockbutton testcase
Matthias Clasen [Wed, 22 Jun 2011 03:34:38 +0000 (23:34 -0400)]
Add a lockbutton testcase

14 years agoAdd a testcase for all the pickers
Matthias Clasen [Wed, 22 Jun 2011 03:31:34 +0000 (23:31 -0400)]
Add a testcase for all the pickers

14 years agoDon't pass NULL to functions expecing a real string
Matthias Clasen [Wed, 22 Jun 2011 03:30:38 +0000 (23:30 -0400)]
Don't pass NULL to functions expecing a real string

...and when you do pass them a real string, don't leak it.

14 years agoRevert "Add a testcase with a print dialog"
Benjamin Otte [Wed, 22 Jun 2011 02:29:42 +0000 (04:29 +0200)]
Revert "Add a testcase with a print dialog"

THe testcase depends on the installed printers, so is nondeterministic.

This reverts commit 5bf14cc7485fe015ad15747454e877f2fb3dabc5.

14 years agoRevert "Add a filechooser testcase"
Benjamin Otte [Wed, 22 Jun 2011 02:24:32 +0000 (04:24 +0200)]
Revert "Add a filechooser testcase"

File choosers depend on the files in the current directory and the
settings the user has set for the file chooser, so the output cannot be
deterministic.

This reverts commit f05c9e02c49f857c33e02c3d89483fcccb5df254.

14 years agoRevert "Add a testcase involving a font selection dialog"
Benjamin Otte [Wed, 22 Jun 2011 02:21:53 +0000 (04:21 +0200)]
Revert "Add a testcase involving a font selection dialog"

The font chooser depends on the fonts installed on the system, so the
output is nondeterministic.

This reverts commit 08fdc399762c2af07d94e42a1801e691e5d4d6ab.

14 years agotests: Don't emit a message for every unnamed object
Benjamin Otte [Wed, 22 Jun 2011 02:20:36 +0000 (04:20 +0200)]
tests: Don't emit a message for every unnamed object

14 years agotests: Reset the unnamed counter before a test run
Benjamin Otte [Wed, 22 Jun 2011 02:14:49 +0000 (04:14 +0200)]
tests: Reset the unnamed counter before a test run

This guarantees that objects are named the same all the time.

14 years agogail: Add support for action_set_description
Benjamin Otte [Wed, 22 Jun 2011 01:47:25 +0000 (03:47 +0200)]
gail: Add support for action_set_description

As set_description is never called and unsupported by the at-spi, we can
omit implementing it.
This means we can also omit get_description calls in various places, as
they'd just return the default value: NULL.

14 years agotests: Fix crash due to freeing random pointers
Benjamin Otte [Tue, 21 Jun 2011 16:14:40 +0000 (18:14 +0200)]
tests: Fix crash due to freeing random pointers

14 years agoa11y: Remove hack for old code
Benjamin Otte [Tue, 21 Jun 2011 14:43:56 +0000 (16:43 +0200)]
a11y: Remove hack for old code

This code was supposed to work around a bad interaction between GOK and
Nautilus from 7 years ago.
If it still exists, the GOK developers may complain to the Nautilus
developers.

https://bugzilla.gnome.org/show_bug.cgi?id=137401

14 years agogail: Remove useless code
Benjamin Otte [Tue, 21 Jun 2011 11:16:11 +0000 (13:16 +0200)]
gail: Remove useless code

The ATK default code does the same thing as these two functions.

14 years agodocs: Remove mention of client messages
Joachim Breitner [Tue, 21 Jun 2011 08:55:28 +0000 (10:55 +0200)]
docs: Remove mention of client messages

14 years agoAdd an assistant testcase
Matthias Clasen [Wed, 22 Jun 2011 00:18:04 +0000 (20:18 -0400)]
Add an assistant testcase

14 years agoAdd a testcase involving an expander
Matthias Clasen [Wed, 22 Jun 2011 00:12:37 +0000 (20:12 -0400)]
Add a testcase involving an expander

14 years agoAdd a testcase with a print dialog
Matthias Clasen [Wed, 22 Jun 2011 00:08:46 +0000 (20:08 -0400)]
Add a testcase with a print dialog

14 years agoAdd a messagedialog testcase
Matthias Clasen [Wed, 22 Jun 2011 00:03:08 +0000 (20:03 -0400)]
Add a messagedialog testcase

14 years agoAdd a testcase involving a font selection dialog
Matthias Clasen [Tue, 21 Jun 2011 23:58:25 +0000 (19:58 -0400)]
Add a testcase involving a font selection dialog

14 years agoAdd a testcase with an appchooser dialog
Matthias Clasen [Tue, 21 Jun 2011 23:55:39 +0000 (19:55 -0400)]
Add a testcase with an appchooser dialog

14 years agoAdd a README for accessibility-dump
Matthias Clasen [Tue, 21 Jun 2011 23:34:55 +0000 (19:34 -0400)]
Add a README for accessibility-dump

14 years agoAdd an about dialog testcase
Matthias Clasen [Tue, 21 Jun 2011 23:20:59 +0000 (19:20 -0400)]
Add an about dialog testcase

14 years agoAdd a color chooser testcase
Matthias Clasen [Tue, 21 Jun 2011 23:20:28 +0000 (19:20 -0400)]
Add a color chooser testcase

14 years agoAdd a scrollbar to the range testcase
Matthias Clasen [Tue, 21 Jun 2011 23:12:55 +0000 (19:12 -0400)]
Add a scrollbar to the range testcase

14 years agoAdd a filechooser testcase
Matthias Clasen [Tue, 21 Jun 2011 22:56:32 +0000 (18:56 -0400)]
Add a filechooser testcase

14 years agoRemove debug spew
Matthias Clasen [Tue, 21 Jun 2011 22:53:30 +0000 (18:53 -0400)]
Remove debug spew

This had crept into the expected output for the buttons
testcase.

14 years agoGailTreeView: deal with absence of model
Matthias Clasen [Tue, 21 Jun 2011 22:53:06 +0000 (18:53 -0400)]
GailTreeView: deal with absence of model

14 years agoGailImageCell: Deal with absence of pixbufs
Matthias Clasen [Tue, 21 Jun 2011 22:52:24 +0000 (18:52 -0400)]
GailImageCell: Deal with absence of pixbufs

...and when there are pixbufs, don't leak them.

14 years agoFix dependencies between directories
Matthias Clasen [Tue, 21 Jun 2011 22:51:40 +0000 (18:51 -0400)]
Fix dependencies between directories

This ensures that libgtk gets relinked when I touch sources
in gtk/a11y.

14 years agoTry harder to generate names for accessibles
Matthias Clasen [Tue, 21 Jun 2011 22:06:02 +0000 (18:06 -0400)]
Try harder to generate names for accessibles

We are still hitting the 'no name' case in GtkFileChooser for
a GailBox, otherwise.

14 years agoHandle AtkValue implementations that return integer values
Matthias Clasen [Tue, 21 Jun 2011 22:01:26 +0000 (18:01 -0400)]
Handle AtkValue implementations that return integer values

We do this by transforming the returned GValue to a string.
As a side-effect, the formatting for doubles changes, so
adjust expected output to match.

14 years agoDon't build the libgail-util docs
Matthias Clasen [Mon, 20 Jun 2011 13:03:25 +0000 (09:03 -0400)]
Don't build the libgail-util docs

The doc build for that is currently broken, and libgail-util is
undergoing reconstructive surgery anyway, currently.
Or maybe it'll turn out to be an amputation...

14 years agotests: omit fg-color and bg-color values from attributes
Benjamin Otte [Mon, 20 Jun 2011 12:22:49 +0000 (14:22 +0200)]
tests: omit fg-color and bg-color values from attributes

They depend on the environment, too.

14 years agotests: Add line breaks when dumping text attributes
Benjamin Otte [Mon, 20 Jun 2011 12:14:00 +0000 (14:14 +0200)]
tests: Add line breaks when dumping text attributes

This improves diff readability a lot when attributes differ.

14 years agowidget: Use g_type_add_class_private()
Benjamin Otte [Mon, 20 Jun 2011 11:58:10 +0000 (13:58 +0200)]
widget: Use g_type_add_class_private()

It turns out that that funciton does indeed exist and my rant was just
outdated. Shame on me.

14 years agogail: Fix compile warning
Benjamin Otte [Mon, 20 Jun 2011 11:57:50 +0000 (13:57 +0200)]
gail: Fix compile warning

14 years agotests: undefine GTK_DISABLE_DEPRECATED as we include deprecated types
Benjamin Otte [Mon, 20 Jun 2011 11:57:26 +0000 (13:57 +0200)]
tests: undefine GTK_DISABLE_DEPRECATED as we include deprecated types

14 years agoRemove debug spew
Matthias Clasen [Mon, 20 Jun 2011 04:03:53 +0000 (00:03 -0400)]
Remove debug spew

14 years agoFix GtkSwitchAccessible type definition
Matthias Clasen [Mon, 20 Jun 2011 04:00:39 +0000 (00:00 -0400)]
Fix GtkSwitchAccessible type definition

It turns out that ATK_DEFINE_TYPE_WITH_CODE() is broken; it
tells GType that the class and instance size for the accessible
type are the same as for its parent type. Which is not true
if your instance struct has members such as 'description' here.
This was causing hard-to-track-down memory corruption, since
description and the GtkAccessible private pointer were sharing
the same memory location.

14 years agoAdd a test involving a tree view
Matthias Clasen [Mon, 20 Jun 2011 01:29:42 +0000 (21:29 -0400)]
Add a test involving a tree view

14 years agoDump AtkTable properties
Matthias Clasen [Mon, 20 Jun 2011 01:28:35 +0000 (21:28 -0400)]
Dump AtkTable properties

Also, make get_name() deal better with GtkAccessibles whose
widgets don't have buildable names.

14 years agoDump AtkComponent properties
Matthias Clasen [Sun, 19 Jun 2011 23:51:15 +0000 (19:51 -0400)]
Dump AtkComponent properties

Note that the spatial aspects of AtkComponent are all dependent
on fonts and other environmental factors, thus we only dump the
little bits outside of that.

14 years agoMake the dumped output a bit more readable
Matthias Clasen [Sun, 19 Jun 2011 23:28:47 +0000 (19:28 -0400)]
Make the dumped output a bit more readable

By adding sections for each interface.

14 years agoAdd a test involving a text view
Matthias Clasen [Sun, 19 Jun 2011 23:16:26 +0000 (19:16 -0400)]
Add a test involving a text view

14 years agoDump AtkStreamableContent properties
Matthias Clasen [Sun, 19 Jun 2011 23:15:54 +0000 (19:15 -0400)]
Dump AtkStreamableContent properties

Also, simplify the format for links slightly.

14 years agoFix the expected output for range.ui
Matthias Clasen [Sun, 19 Jun 2011 23:01:57 +0000 (19:01 -0400)]
Fix the expected output for range.ui

GtkScale puts a LRM character at the start of the string.

14 years agoAdd a test involving links
Matthias Clasen [Sun, 19 Jun 2011 22:55:12 +0000 (18:55 -0400)]
Add a test involving links

14 years agoDump AtkHyperLinkImpl properties
Matthias Clasen [Sun, 19 Jun 2011 22:53:56 +0000 (18:53 -0400)]
Dump AtkHyperLinkImpl properties

14 years agoFix some problems with the GailLinkButton implementation
Matthias Clasen [Sun, 19 Jun 2011 22:53:24 +0000 (18:53 -0400)]
Fix some problems with the GailLinkButton implementation

14 years agoAdd a test involving ranges
Matthias Clasen [Sun, 19 Jun 2011 21:58:57 +0000 (17:58 -0400)]
Add a test involving ranges

14 years agoDump AtkValue properties
Matthias Clasen [Sun, 19 Jun 2011 21:58:31 +0000 (17:58 -0400)]
Dump AtkValue properties

14 years agoAdd a test involving a selection
Matthias Clasen [Sun, 19 Jun 2011 21:19:34 +0000 (17:19 -0400)]
Add a test involving a selection

14 years agoDump AtkSelection properties
Matthias Clasen [Sun, 19 Jun 2011 21:18:47 +0000 (17:18 -0400)]
Dump AtkSelection properties

Also make get_name() deal with object that are not GtkAccessible,
but implement AtkText. An example of this is GailNotebookPage.

14 years agoDump AtkAction properties
Matthias Clasen [Sun, 19 Jun 2011 20:53:16 +0000 (16:53 -0400)]
Dump AtkAction properties

Adjust expected output to match.

14 years agoDump AtkImage properties too
Matthias Clasen [Sun, 19 Jun 2011 19:30:01 +0000 (15:30 -0400)]
Dump AtkImage properties too

Update expected output to match.

14 years agoMore text properties
Matthias Clasen [Sun, 19 Jun 2011 19:22:08 +0000 (15:22 -0400)]
More text properties

14 years agoDump AtkText properties too
Matthias Clasen [Sun, 19 Jun 2011 18:56:05 +0000 (14:56 -0400)]
Dump AtkText properties too

...would be nice if these actually _were_ properties.
Update the expected output to match.

14 years agoRemove remnants of GnomeCanvas
Matthias Clasen [Sun, 19 Jun 2011 18:11:46 +0000 (14:11 -0400)]
Remove remnants of GnomeCanvas

There were some random places where gail was poking at types
to see if they were a GnomeCanvas. Just remove this.

14 years agoFix make check
Matthias Clasen [Sun, 19 Jun 2011 18:05:06 +0000 (14:05 -0400)]
Fix make check

Not really the best fix; for now just ignore accessible parents
that are not GtkAccessibles - it seems that something causes
GailToplevels to show up as parents of GailWindows, randomly.

14 years agoRemove an extra line from expected output
Matthias Clasen [Sun, 19 Jun 2011 18:04:29 +0000 (14:04 -0400)]
Remove an extra line from expected output

14 years agoDon't forget to free an empty attribute set
Matthias Clasen [Sun, 19 Jun 2011 17:36:20 +0000 (13:36 -0400)]
Don't forget to free an empty attribute set

14 years agoAdd a more convenient way to dump
Matthias Clasen [Sun, 19 Jun 2011 17:20:32 +0000 (13:20 -0400)]
Add a more convenient way to dump

For initial creation of the results, allow to run
accessibility-dump --generate file.ui,
which will dump just the expected output to stdout,
without any extra decorations.

14 years agoDump more accessibility data
Matthias Clasen [Sun, 19 Jun 2011 15:32:43 +0000 (11:32 -0400)]
Dump more accessibility data

This commit adds dumping of parents, attributes and states.
The expected dump output has been adjusted to match.

14 years agoAdd new tests to EXTRA_DIST
Matthias Clasen [Sun, 19 Jun 2011 06:11:11 +0000 (02:11 -0400)]
Add new tests to EXTRA_DIST

14 years agoAdd a test that sets ::accessible-name
Matthias Clasen [Sun, 19 Jun 2011 06:10:27 +0000 (02:10 -0400)]
Add a test that sets ::accessible-name

14 years agoAdd a test that has a labeled-by relation in it
Matthias Clasen [Sun, 19 Jun 2011 06:03:24 +0000 (02:03 -0400)]
Add a test that has a labeled-by relation in it

14 years agotests: Add first shot at an accessibility dump tool
Benjamin Otte [Sun, 19 Jun 2011 04:11:38 +0000 (06:11 +0200)]
tests: Add first shot at an accessibility dump tool

The tool works like this:
  ./accessibility-dump [FILE ...]
If no files are given, all files with the extension ".ui" in the current
directory are taken. For every file "test.ui", the following steps are
performed:
1) test.ui is loaded using GtkBuilder
2) The accessible for the window is loaded
3) The information of accessible is converted into a string using a
   syntax defined in this test file
4) The generated string is diffed with the file "test.txt"
5) If the diff is empty, the test is a success, if not, the test fails.
6) The diff is output when the test runner is run with --verbose

So to add a test named "test", create a file called "test.ui", put it
into this directory. Then create the expected output file "test.txt",
put it into this directory too. You can create the initial version of
this file by invoking "./accessibility-dump --verbose test.ui". The
output will contain the expected text and can be copy/pasted into the
text file.

14 years agoAPI: Add gtk_widget_class_set_accessible_type()
Benjamin Otte [Sat, 18 Jun 2011 07:51:18 +0000 (09:51 +0200)]
API: Add gtk_widget_class_set_accessible_type()

The function is supposed to bypass the ATK registry. For 2 reasons:
1) We get rid of a lot of boilerplate madness.
2) The registry allows creating multiple accessibles per widget and we
   don't.

The old code for registries is still there.

14 years agowidget: Add a GtkWidgetClassPrivate
Benjamin Otte [Sat, 18 Jun 2011 07:11:11 +0000 (09:11 +0200)]
widget: Add a GtkWidgetClassPrivate

As long as glib doesn't provide class privates, we'll have to ship our
own...